package com.tbit.uqbike.client.dao.core;

import com.tbit.uqbike.client.pojo.NoticeReadLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;


/**
 * 公告阅读情况表(NoticeReadLog)表数据库访问层
 *
 * @author shanyong.mo
 * @since 2025-02-19 10:58:06
 */
@Mapper
@Repository
public interface NoticeReadLogDao {

    /**
     * 查询指定行数据
     *
     * @param noticeReadLog 查询条件
     * @param offset        起始数据索引下标
     * @param pageSize      每页数据量
     * @return 对象列表
     */
    List<NoticeReadLog> queryAllByLimit(@Param("noticeReadLog") NoticeReadLog noticeReadLog,
                                        @Param("offset") Integer offset, @Param("pageSize") Integer pageSize);

    /**
     * 新增数据
     *
     * @param noticeReadLog 实例对象
     * @return 影响行数
     */
    int insert(NoticeReadLog noticeReadLog);

    /**
     * 新增数据（判空）
     *
     * @param noticeReadLog 实例对象
     * @return 影响行数
     */
    int insertCheckNull(NoticeReadLog noticeReadLog);

    /**
     * 批量新增数据（MyBatis原生foreach方法）
     *
     * @param entities List<NoticeReadLog> 实例对象列表
     * @return 影响行数
     */
    int insertBatch(@Param("entities") List<NoticeReadLog> entities);

    /**
     * @description: 判空更新
     * @author: mo.shanyong
     * @date: 2025/2/20 17:17
     * @param: noticeReadLog
     * @return: int
     */
    int updateCheckNull(NoticeReadLog noticeReadLog);

}

